package wt.rocket.ctrl;

import java.util.ArrayList;
import org.zkoss.zk.ui.Component;
import org.zkoss.zk.ui.util.GenericForwardComposer;
import org.zkoss.zul.*;
import wt.rocket.model.beans.Persona;

/**
 *
 * @author WayTech
 */
public class CtrlPersonaListadoGrid extends GenericForwardComposer {

  Grid grid;
  Label etqNro, etqNombre, etqEmail, etqTelefono, etqDireccion;
  ArrayList lista;

  @Override
  public void doAfterCompose(Component comp) throws Exception {
    super.doAfterCompose(comp);
    inicio();
  }

  void inicio() {
    buscarData();
    mostrarData();
  }

  /**
   * método que simula la búsqueda de la data
   */
  void buscarData() {
    lista = new ArrayList();
    lista.add(new Persona("Gabriel Pérez", "gabrielperez@waytech.com.ve", "0426-5538165", "San Felipe - Yaracuy"));
    lista.add(new Persona("Gerardo Montilla", "gerardomontilla@waytech.com.ve", "0416-1041108", "Cabudare - Lara"));
  }

  public void mostrarData() {
    if (lista == null) {
      System.out.println("CtrlPersonaList: Lista de Datos Vacía");
      //TODO: mostrar en la vista que no hay datos
    }
    ListModelList model = new ListModelList(lista);
    grid.setModel(model);
    grid.setRowRenderer(new RowRenderer() {

      public void render(Row row, Object data, int i) throws Exception {
        //se extrae la data
        Persona p = (Persona) data;

        //se crean los widgets con la data:
        etqNro = new Label("" + ++i);
        etqNombre = new Label("" + p.getNombre());
        etqTelefono = new Label("" + p.getTelefono());
        etqEmail = new Label("" + p.getEmail());
        etqDireccion = new Label("" + p.getDireccionCorta());

        //se anexan los widgets a la fila
        etqNro.setParent(row);
        etqNombre.setParent(row);
        etqEmail.setParent(row);
        etqTelefono.setParent(row);
        etqDireccion.setParent(row);
      }
    });
  }
}
